﻿import type { IFileAttachment, ISysOrg, ISysGroup, ISysJobPosition } from '@/type/fileattachment'

export interface ISysHrProbationRequestBill {
  ID?: string | null;
  EntryDate: Date | null;
  RegDate: Date | null;
  ProbationStartDate: Date | null;
  ProbationEndDate: Date | null;
  ProbationSalary: string | null;
  RegularSalary: string | null;
  JobContent: string | null;
  JobAchievements: string | null;
  Remarks: string | null;
  RegOpinion: string | null;
  Status: number | null;
  RecruitNo: string | null;
  ArrivalDate: Date | null;
  CurrentSalary: string | null;
  ExpectedSalary: string | null;
  WorkExperience: string | null;
  InitialTestTime: Date | null;
  InitialResult: string | null;
  InitialComment: string | null;
  ReExamTime: Date | null;
  ReExamResult: string | null;
  ReExamComment: string | null;
  FinalResult: string | null;
  FinalRemark: string | null;
  RejectReason: string | null;
  BillCode: string | null;
  BillStatus: number | null | string;
  WorkflowStatus: number | null | string;
  Remark: string | null;
  Approver: string | null;
  ApprovalTime: Date | null;
  Name: string | null;
  StaffNo: string | null;
  BirthDate: Date | null;
  Age: number | null;
  Gender: number | null;
  Ethnicity: number | null;
  HighestEducation: number | null;
  MaritalStatus: number | null;
  PhotoId: null;
  Photo?: IFileAttachment;
  IdCardNo: string | null;
  IdCardFrontPhotoId: null;
  IdCardFrontPhoto?: IFileAttachment;
  IdCardBackPhotoId: null;
  IdCardBackPhoto?: IFileAttachment;
  HouseholdRegistration: string | null;
  NativePlace: string | null;
  PoliticalStatus: number | null;
  PartyJoinDate: Date | null;
  PartyBranch: string | null;
  ArchiveLocation: string | null;
  ArchiveNo: string | null;
  ArchiveTransferOutDate: Date | null;
  ArchiveTransferInDate: Date | null;
  HomeAddress: string | null;
  Phone: string | null;
  Email: string | null;
  SalaryBank: string | null;
  SalaryAccount: string | null;
  BonusBank: string | null;
  BonusAccount: string | null;
  OrgId: null;
  Org?: ISysOrg;
  GroupId: null;
  Group?: ISysGroup;
  JobPositionId: null;
  JobPosition?: ISysJobPosition;
  ResumeId: null;
  Resume?: IFileAttachment;
  HireDate: Date | null;
  ConfirmationDate: Date | null;
  EmploymentType: number | null;
  ContractType: number | null;
  ContractNo: string | null;
  ContractStartDate: Date | null;
  ContractEndDate: Date | null;
  ResignationDate: Date | null;
  ResignationReason: string | null;
  ResignationType: number | null;
  State: number | null;
  BloodType: number | null;
  Hobbies: string | null
}

export interface ISysHrProbationRequestBillVm {
  Entity: ISysHrProbationRequestBill;
  IsMyApprove: boolean | null;
  ActionName: string | null;
  Remark: string | null;
}

export interface ISysHrProbationRequestBillView extends ISysHrProbationRequestBill {

  ActionNames?: string;

}

export interface ISysHrProbationRequestBillQuery {
  Status?: number
  BillCode?: string
  BillStatus?: number | string
  WorkflowStatus?: number | string
  Approver?: string
  ApprovalTime?: Date | Date[]
  Name?: string
  StaffNo?: string
  Gender?: number
  Ethnicity?: number
  ArchiveNo?: string
  Phone?: string
  OrgId?: string
  GroupId?: string
  JobPositionId?: string
  EmploymentType?: number
  ContractType?: number
  ContractNo?: string
  State?: number
  Limit?: number
  Page?: number
}

